1 npm

npm 是Node平台的包管理器,跟各大操作系统类似Mac的appStore,brew,安卓的市场,window的商店,Ubuntu的apt-get,RedHat的yum;各大语言也有类似的实现Java的ant,maven,Python的pip,Ruby的gem,PHP 的Composer等。

各种安装不上的问题解决 将如下内容让入.bashrc

1
2
3
4
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/
export NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/
export CHROMEDRIVER_CDNURL=https://npm.taobao.org/mirrors/chromedriver
export SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass

2 package.json

npm 在项目中的直接体现就是package.json

  • 样例文件参考

  • 文档说明

  • 通过npm init生成相应的配置文件 一个基本的样例,最重要和必不可少的是name 和version 字段

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    {
    "name": "algorithms-combined-js",
    "version": "1.0.1",
    "description": "algorithms for combined",
    "main": "libs/index.js",
    "scripts": {
    "build":"babel src -d libs",
    "prepublish":"npm run build",
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "repository": {
    "type": "git",
    "url": "git+https://github.com/rawbin-/algorithms-combined-js.git"
    },
    "keywords": [
    "algorithms",
    "javascript",
    "combination",
    "arrangement"
    ],
    "author": "rawbin-",
    "license": "ISC",
    "bugs": {
    "url": "https://github.com/rawbin-/algorithms-combined-js/issues"
    },
    "homepage": "https://github.com/rawbin-/algorithms-combined-js#readme",
    "devDependencies": {
    "babel-cli": "^6.18.0",
    "babel-preset-es2015": "^6.18.0",
    "babel-preset-stage-0": "^6.16.0"
    },
    "dependencies": {
    "underscore": "^1.8.3"
    }
    }
  • 依赖的版本配置

     版本的配置有讲究,经常的兼容性问题都出在这,比如node-sass,多版本react等
    
    • 使用> >= < <= =||来组合具体范围
    • 使用-来指定范围
    • 使用x X * 或者 留空 来指定版本通配
    • 使用~来指定最邻近右边的大版本范围,放开小版本的变更
    • 使用^来限定最左边的大版本
  • files 字段明确指定包含的文件 比如

    • package.json
    • ReadMe.md
    • ChangeLog
    • LICENCE
  • main 字段指定当前包的默认加载文件 index.js

  • bin 字段指定当前项目的可执行文件名称和路径配置,一般包含一些自定义的项目命令

  • scripts 配置使用npm能运行的脚本的命令,这个字段的内容比较丰富,也经常用到

    • 命令列表
      • prepublish publish postpublish
      • preinstall install postinstall
      • preuninstall uninstall postuninstall
      • preversion version postversion
      • pretest test posttest
      • prestop stop poststop
      • prestart start poststart
      • prerestart restart postrestart
    • 任意命令的运行方式为npm run scriptname,特殊的start stop restart test 可以直接用npm scriptname来运行
    • scripts参考文档

3 常用命令

  • npm i xxx -g === npm install xxx --global
  • npm i xxx -S === npm install xxx --save
  • npm i xxx -D === npm install xxx --save-dev
  • npm un xxx === npm uninstall xxx
  • npm publish xxx
  • npm unpublish xxx

3.1 npm与yarn命令映射

4 编码相关

5 参考资料

  1. npm 文档
  2. npm scripts使用指南
  3. package.json说明
  4. sermver 版本说明
  5. 开源协议说明 OpenSource
  6. 开源协议说明 SPDX
  7. yarn与npm对比

最后更新: 2022年03月02日 03:32

原始链接: http://rawbin-.github.io/dev-tools/2016-09-25-fe-project-tools-npm/

× 赞赏这个人~
打赏二维码